home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 02 - 1986 / 02.06 Jun 86.sit / 02.06 Jun 86 / Basic sources / Menu Style Demo.bas (.txt) next >
Encoding:
AmigaBASIC Source Code  |  1986-04-19  |  2.6 KB  |  136 lines  |  [MSBC/MSBB]

  1. 'Menu Styles Demo
  2. '©MacTutor 1986
  3. 'by Dave Kelly
  4. 'With special thanks to Clear Lake Research
  5. 'for allowing use of KbEquiv and setItemStyle Libraries
  6.  
  7. LIBRARY"NewLibraries"
  8. <0x2d76d850,0x2d76c010> 1
  9. DIM st%(10)
  10.  
  11. MENU 6,0,1,"Style"
  12. MENU 6,1,1,"Plain"
  13. MENU 6,2,1,"Bold"
  14. MENU 6,3,1,"Italic"
  15. MENU 6,4,1,"Underline"
  16. MENU 6,5,1,"Outline"
  17. MENU 6,6,1,"Shadow"
  18. MENU 6,7,1,"Condensed"
  19. MENU 6,8,1,"Extended"
  20. MENU 6,9,0,"-"
  21. MENU 6,10,1,"Quit"
  22.  
  23. FOR i% = 0 TO 6
  24.     st%(i%+2)=2^i%
  25. NEXT i%
  26.  
  27. 'Variable    Value            Attribute
  28. '    st%(1)      0                Plain Text
  29. '    st%(2)      1                Bold
  30. '    st%(3)      2                Italic
  31. '    st%(4)      4                Underlined
  32. '    st%(5)      8                Outlined
  33. '    st%(6)     16                Shadow
  34. '    st%(7)      32               Condensed (less space between characters)
  35. '    st%(8)      64               Extended (more space between characters)
  36.  
  37. 'Set up menu styles
  38. FOR i%= 2 TO 8
  39.     setItemStyle 6,i%,st%(i%)
  40.     st%(i%)=0
  41. NEXT i%
  42.  
  43. 'Set up keyboard equivalents
  44. FOR i% = 1 TO 6
  45.     READ A$
  46.     KbEquiv 6,i%,A$
  47. NEXT i%
  48.  KbEquiv 6,10,"Q"
  49.  
  50. DATA P,B,I,U,O,S
  51.  
  52. ON MENU GOSUB MenuEvent
  53. <0x2d76e500,0x2d76c010> 10,50
  54. PRINT "Hello World!"
  55. Style%=0
  56. MENU ON
  57. loop:
  58. GOTO loop
  59.  
  60. MenuEvent:
  61. menunumber%=MENU(0):menuitem%=MENU(1):MENU
  62. IF menunumber%=6 THEN ItemEvent
  63. RETURN
  64.  
  65. ItemEvent:
  66. ON menuitem% GOSUB plain,bold,Italic,Underlined,Outlined,Shadow,Condensed,Extended,,quit
  67. RETURN
  68.  
  69. quit:
  70. MENU RESET
  71. END
  72.  
  73. plain:
  74. Style%=0
  75. MENU 6,1,2
  76. FOR i%=2 TO 8
  77.     MENU 6,i%,1
  78.     st%(i%)=0
  79. NEXT i%
  80. GOSUB printscreen
  81. RETURN
  82.  
  83. printscreen:
  84. <0x2d76ed00,0x2d76c010> Style%
  85. CLS
  86. <0x2d76ed80,0x2d76c010> 10,50
  87. PRINT "Hello, World!"
  88. RETURN
  89.  
  90. bold:
  91. IF st%(2)=0 THEN st%(2)=1 :ELSE st%(2)=0
  92. IF st%(2)=0 THEN MENU 6,2,1 :ELSE MENU 6,2,2
  93.  
  94. Computestyle:
  95. MENU 6,1,1
  96. Style%=0
  97. FOR i%=1 TO 8
  98.     Style%=Style%+st%(i%)
  99. NEXT i%
  100. GOSUB printscreen
  101. RETURN
  102.  
  103. Italic:
  104. IF st%(3)=0 THEN st%(3)=2 :ELSE st%(3)=0
  105. IF st%(3)=0 THEN MENU 6,3,1 :ELSE MENU 6,3,2
  106. GOTO Computestyle
  107.  
  108. Underlined:
  109. IF st%(4)=0 THEN st%(4)=4 :ELSE st%(4)=0
  110. IF st%(4)=0 THEN MENU 6,4,1 :ELSE MENU 6,4,2
  111. GOTO Computestyle
  112.  
  113. Outlined:
  114. IF st%(5)=0 THEN st%(5)=8 :ELSE st%(5)=0
  115. IF st%(5)=0 THEN MENU 6,5,1 :ELSE MENU 6,5,2
  116. GOTO Computestyle
  117.  
  118. Shadow:
  119. IF st%(6)=0 THEN st%(6)=16 :ELSE st%(6)=0
  120. IF st%(6)=0 THEN MENU 6,6,1 :ELSE MENU 6,6,2
  121. GOTO Computestyle
  122.  
  123. Condensed:
  124. IF st%(7)=0 THEN st%(7)=32 :ELSE st%(7)=0
  125. IF st%(7)=0 THEN MENU 6,7,1 :ELSE MENU 6,7,2
  126. GOTO Computestyle
  127.  
  128. Extended:
  129. IF st%(8)=0 THEN st%(8)=64 :ELSE st%(8)=0
  130. IF st%(8)=0 THEN MENU 6,8,1 :ELSE MENU 6,8,2
  131. GOTO Computestyle
  132.  
  133.  
  134.  
  135.  
  136.